package com.ygqh.baby.service.linkstars.model;

import java.math.BigDecimal;
import java.util.List;

import com.alibaba.fastjson.annotation.JSONField;

public class Order {
	@JSONField(name = "feedback")
	private String feedback;

	@JSONField(name = "order_number")
	private String orderNumber;

	/**
	 * 下单时间。格式为：YYYY-MM-DDThh:mm:ss±hh:mm 例如：2016-07-19T21:15:50+08:00 其中 T
	 * 是日期和时间的分隔 符，+08:00 表示时区为+8 区，请根据贵方所在时区确定。如未 附加时区标识，我们将默认的认为时区是零时区（+0）。关于此
	 * 类时间格式，更多信息可以参考国际标准化组织 ISO 8601 之约 定。
	 */
	@JSONField(name = "order_time")
	private String orderTime;

	/**
	 * 币种的简称。 如 CNY 代表人民币，USD 代表美元。币种及其简称列表请见附 件。 一个订单中所有涉及金额的字段都必须是同一币种。
	 * 如果未填写则默认为 CNY。
	 */
	@JSONField(name = "currency")
	private String currency;

	/**
	 * 订单金额。 单位为货币的主货币单位，例如元、美元、铢。保留小数点后 2 位（即分位），厘位需四舍五入。 重要： 1.
	 * 此金额应为除去减免、代金券、快递费等优惠金额后的可计 算佣金的部分。 2. 如果这个字段没有填写，联盟将使用下文中提到的单个商
	 * 品价格（goods_price）以及商品数量（goods_count）相乘汇总 作为本字段的值保存。 3.
	 * 不论本字段的值是商户传递或由联盟计算，都不作为由联 盟计算佣金时计算佣金的依据。（联盟计算佣金时是根据商品
	 * 金额及其数量对照该商品所属佣金类目的佣金比例计算的）
	 */
	@JSONField(name = "order_price")
	private BigDecimal orderPrice;

	/**
	 * 订单佣金类目。 根据计划设置填写（见广告主《上线申请书》）。 如果没有同时推送 goods ->
	 * goods_commission_type，则此项值不 为 空 ， 本 值 将作为订单中所有商品的 goods ->
	 * goods_commission_type 的值；反之，此处可以为空。 （关于佣金类目的说明请参考 FAQ）
	 */
	@JSONField(name = "order_commission_type")
	private String orderCommissionType;

	/**
	 * 商品总数量
	 */
	@JSONField(name = "count")
	private Long count;

	/**
	 * 优惠券号码
	 */
	@JSONField(name = "coupon_number")
	private String couponNumber;

	/**
	 * 订单状态。0=待定（默认值）；-1=无效订单； 1=有效订单 2=订单已支付 如果广告主在调用本接口时就可以确定该订单有效，则可以附带
	 * 此字段，联盟会将本订单设为广告主希望的状态，因此广告主可 以免于后续调用 Effect Push 接口。
	 */
	@JSONField(name = "order_status")
	private Integer orderStatus;

	/**
	 * O 该订单是否为新注册的用户首次下单的标识。 1 = 是 其他值或不填写 = 不是
	 */
	@JSONField(name = "is_new_customer")
	private Integer isNewCustomer;

	/**
	 * 设备类型。取值： 1 = 桌面电脑浏览器 2 = 移动设备浏览器 3 = 移动设备 App 广告主应自行根据 User Agent
	 * 或其他方式获取设备类型。如果无 法获取设备类型，请忽略此字段。
	 */
	@JSONField(name = "device")
	private String device;

	/**
	 * 订单佣金。 该订单将来或已经可以得到的佣金的金额。 单位为货币的主货币单位，例如元、美元、铢。保留小数点后 2 位（即分位），厘位需四舍五入。
	 */
	@JSONField(name = "order_commission")
	private BigDecimal orderCommission;

	/**
	 * 商品的详细信息。可批量传递多个商品信息。
	 */
	@JSONField(name = "goods")
	private List<Goods> goodsList;

	public Order() {
		super();
	}

	public Order(String feedback, String orderNumber, Integer orderStatus) {
		super();
		this.feedback = feedback;
		this.orderNumber = orderNumber;
		this.orderStatus = orderStatus;
	}

	public Order(String feedback, String orderNumber, String orderTime, BigDecimal orderPrice, Integer orderStatus, BigDecimal orderCommission,
			List<Goods> goodsList) {
		super();
		this.feedback = feedback;
		this.orderNumber = orderNumber;
		this.orderTime = orderTime;
		this.orderPrice = orderPrice;
		this.orderStatus = orderStatus;
		this.orderCommission = orderCommission;
		this.goodsList = goodsList;
	}

	public String getFeedback() {
		return feedback;
	}

	public void setFeedback(String feedback) {
		this.feedback = feedback;
	}

	public String getOrderNumber() {
		return orderNumber;
	}

	public void setOrderNumber(String orderNumber) {
		this.orderNumber = orderNumber;
	}

	public String getOrderTime() {
		return orderTime;
	}

	public void setOrderTime(String orderTime) {
		this.orderTime = orderTime;
	}

	public String getCurrency() {
		return currency;
	}

	public void setCurrency(String currency) {
		this.currency = currency;
	}

	public BigDecimal getOrderPrice() {
		return orderPrice;
	}

	public void setOrderPrice(BigDecimal orderPrice) {
		this.orderPrice = orderPrice;
	}

	public String getOrderCommissionType() {
		return orderCommissionType;
	}

	public void setOrderCommissionType(String orderCommissionType) {
		this.orderCommissionType = orderCommissionType;
	}

	public Long getCount() {
		return count;
	}

	public void setCount(Long count) {
		this.count = count;
	}

	public String getCouponNumber() {
		return couponNumber;
	}

	public void setCouponNumber(String couponNumber) {
		this.couponNumber = couponNumber;
	}

	public Integer getOrderStatus() {
		return orderStatus;
	}

	public void setOrderStatus(Integer orderStatus) {
		this.orderStatus = orderStatus;
	}

	public Integer getIsNewCustomer() {
		return isNewCustomer;
	}

	public void setIsNewCustomer(Integer isNewCustomer) {
		this.isNewCustomer = isNewCustomer;
	}

	public String getDevice() {
		return device;
	}

	public void setDevice(String device) {
		this.device = device;
	}

	public BigDecimal getOrderCommission() {
		return orderCommission;
	}

	public void setOrderCommission(BigDecimal orderCommission) {
		this.orderCommission = orderCommission;
	}

	public List<Goods> getGoodsList() {
		return goodsList;
	}

	public void setGoodsList(List<Goods> goodsList) {
		this.goodsList = goodsList;
	}

}
